Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, video teleconferencing devices, and the like. Digital video devices implement video compression techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), or proposed ITU-T H.265, High Efficiency Video Coding (HEVC), and extensions of such standards, to transmit and receive digital video information more efficiently.
Video compression techniques may perform spatial prediction and/or temporal prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video frame or slice may be partitioned into macroblocks. Each macroblock can be further partitioned. Macroblocks in an intra-coded (I) frame or slice are encoded using spatial prediction with respect to neighboring macroblocks. Macroblocks in an inter-coded (P or B or Generalized P/B) frame or slice may use spatial prediction with respect to neighboring macroblocks in the same frame or slice or temporal prediction with respect to other reference frames.
The video compression techniques may also perform linear transforms to represent residual video block data, which is the difference between a video block of a current frame to be coded and a predictive video block of a reference frame, in an efficient manner for coding. In some cases, the video coding devices may use fast implementations of linear transforms that are performed using cascaded butterfly structures. The number of cascaded butterfly structures used to represent a transform depends on the size of the transform. In order to reduce computational complexity within video coding devices, linear transforms may be implemented as fixed-point transforms instead of floating point transforms. Fixed-point implementations, however, may introduce rounding errors at each of the cascaded levels of butterfly structures used to represent the transform. In the case of fixed-point transforms, therefore, the cumulative rounding error increases with the size of the transform.